MacOS M1 上,使用 Docker 构建快速使用和开发 Alink 的相关镜像,启动 Alink 的 server、web、notebook以及数据库服务等,可以在 web 界面上进行 Alink 相关功能的使用。
Alink 提供的 Web UI 工具,可以理解成是 AIStudio 的简易操作版,供学习使用。
快速上手
参考 https://docs.docker.com/get-docker/ 安装 Docker;
参考 https://umijs.org/zh-CN/docs/getting-started 准备好 node 和 yarn;
克隆 Alink 代码:
1
2git clone https://github.com/alibaba/Alink.git
cd Alink下载 shade 后的 Alink 包到 webui/tools/flink-with-alink-jar/
1
wget https://alink-release.oss-cn-beijing.aliyuncs.com/v1.5.0/alink_core_flink-1.9_2.11-1.5.0.jar -P webui/tools/flink-with-alink-jar/
进入到目录 webui/web/,执行 yarn:
1
2cd webui/web/
yarn进入到目录 webui/tools/,执行 sh build-image.sh,等待编译 docker 镜像;
M1 芯片由于底层架构的问题:
需要使用 linux/x86_64 平台的 mysql 镜像,在
webui/tools/docker-compose/alink/docker-compose.yml
的第 41 行前增加一行platform: linux/x86_64
:需要使用 linux/x86_64 平台的 flink 镜像,修改
webui/tools/flink-with-alink-jar/Dockerfile
的第一行,修改后为:FROM --platform=linux/x86_64 flink:1.9.2-scala_2.11
:1
2cd ../tools
sh build-image.sh
编译成功后,进入到目录 webui/tools/docker-compose/alink/nfs/,执行 docker-compose up -d,这将启动一个 NFS 服务;
1
2cd docker-compose/alink/nfs/
docker-compose up -d进入到目录 webui/tools/docker-compose/alink,执行 docker-compose up -d,这将启动 Alink 的 server、web、notebook以及数据库等服务;
1
2cd ..
docker-compose up -d在浏览器打开 localhost:9090,就能开始使用了。
开发步骤
单启 Web
设置环境变量:
1
2vim etc/profile
export WEB_CONTAINER_ID=$(docker ps -a -q --filter="name=alink_web")将在
快速上手
中启动的 Web 服务杀掉:1
docker kill $WEB_CONTAINER_ID && docker rm $WEB_CONTAINER_ID
通过代码启动 Web 服务:
1
2cd webui/web/
yarn start在浏览器打开 localhost:8000,可以实时预览 Web 代码的修改。
单启 Server
设置环境变量:
1
2vim etc/profile
export SERVER_CONTAINER_ID=$(docker ps -a -q --filter="name=alink_server")将在
快速上手
中启动的 Server 服务杀掉:1
docker kill $SERVER_CONTAINER_ID && docker rm $SERVER_CONTAINER_ID
使用 Intellij IDEA 等工具打开 Server 部分的代码 webui/server/,启动 com.alibaba.alink.server.ServerApplication 类。
- 修改 application.properties 配置文件,配置信息从
webui/tools/docker-compose/alink/docker-compose.yml
文件中获取:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto: update
#spring.datasource.url=${SPRING_DATASOURCE_URL}
#spring.datasource.username=${SPRING_DATASOURCE_USERNAME}
#spring.datasource.password=${SPRING_DATASOURCE_PASSWORD}
#域名修改为 localhost
spring.datasource.url=jdbc:mysql://localhost:3306/alink?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false
spring.datasource.username=alinkalink
spring.datasource.password=alinkalink
alink.execution.type=remote
#alink.execution.remote-cluster-host=${ALINK_REMOTE_CLUSTER_HOST}
#alink.execution.remote-cluster-port=${ALINK_REMOTE_CLUSTER_PORT}
#alink.execution.remote-cluster-host=flink-jobmanager
#域名修改为 localhost
alink.execution.remote-cluster-host=localhost
alink.execution.remote-cluster-port=8081
1 | <dependency> |
流程操作示例
csv -> Kafka
读取csv,需要设置的相关参数如下
filePath:”https://alink-release.oss-cn-beijing.aliyuncs.com/data-files/iris.csv"
schemaStr:”sepal_length double, sepal_width double, petal_length double, petal_width double, category string”写入Kafka,需要设置的相关参数如下:
bootstrapServers:”localhost:9092”
附录
webui/tools/docker-compose/alink/docker-compose.yml
启动文件,包括 Alink 的 server、web、notebook以及数据库服务等:
1 | # Docker Compose file Reference (https://docs.docker.com/compose/compose-file/) |